using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.Contracts;

namespace FoundationLib.Ifc.Events
{
	/// <summary>
	/// Provides an interface common to domain event handlers handling events.
	/// </summary>
	/// <typeparam name="T">The type of event handled</typeparam>
	public interface IDomainEventHandler<T> where T : IDomainEvent 
	{
		/// <summary>
		/// Handles the domain event.
		/// </summary>
		/// <param name="args">The domain event arguments</param>
		void Handle(T args);
	}
}